################################################################################
__author__ = 'Ong Zhi Xian'

################################################################################
import cherrypy
import webpages

################################################################################
SESSION_USERNAME = 'SESSION_USERNAME'
BEFORE_LOGIN_URL = 'BEFORE_LOGIN_URL'

################################################################################
def authenticate(login_path_info):
    if cherrypy.request.path_info.lower().startswith(login_path_info.lower()):
        return

    username = cherrypy.session.get(SESSION_USERNAME)

    if username is None:
        cherrypy.session[BEFORE_LOGIN_URL] = cherrypy.request.path_info
        cherrypy.log("base: {0}".format(cherrypy.request.base))
        cherrypy.log("remote: {0}".format(cherrypy.request.remote.ip))
        #raise cherrypy.InternalRedirect("/login")
        #raise cherrypy.HTTPRedirect(cherrypy.request.base + "/login")
        raise cherrypy.HTTPRedirect(webpages.PageHelper.get_url('/login'))
    else:
        cherrypy.request.login = username

cherrypy.tools.authenticate = cherrypy.Tool('before_handler', authenticate)
